FLUSH CACHE GROUP文は、TimesTenのデータをOracleにフラッシュします。この文は、ユーザー管理キャッシュ・グループでのみ使用できます。キャッシュ・グループの型の詳細は、「ユーザー管理キャッシュ・グループおよびシステム管理キャッシュ・グループ」を参照してください。
この操作には、WHERE句を受け入れる操作およびWITH ID句を受け入れる操作の2つのタイプがあります。
FLUSH CACHE GROUPは、コミットの伝播(TimesTenからOracleへ)がオフになっているときに使用します。このため、コミットのすべてのトランザクションを伝播するのではなく、変更をOracleに伝播する前に多数のトランザクションをコミットできます。Oracleにキャッシュ・インスタンスが存在する場合は、キャッシュ・インスタンスIDごとに更新操作が実行されます。Oracleにキャッシュ・インスタンスが存在しない場合は、TimesTenによって挿入されます。
この機能は、注文がマスターOracle表にコミットされる前に、高速キャッシュとしてTimesTenを使用する、カートへの変更が頻繁に行われるショッピング・カート・アプリケーションなどで役立ちます。
注意: | 通常、WHERE句を使用するより、WITH ID句を使用した方が高いシステム・パフォーマンスが得られます。 |
挿入および更新のみがフラッシュされます。Oracleにレコードが存在しない場合、挿入は挿入として伝播されます。レコードが存在する場合は、更新として伝播されます。削除をフラッシュすることはできません。つまり、TimesTenのレコードが削除されたとしても、Oracleに削除はフラッシュされないため、Oracle表でも削除を実行する必要があります。削除は手動で伝播するか、またはコミットの伝播をオンに設定します。削除したレコードをフラッシュしようとしても無視されます。エラーまたは警告は出力されません。READ ONLYまたはPROPAGATEが指定された表のレコードは、Oracleにフラッシュできません。
FLUSH CACHE GROUP [Owner.]GroupName
[WHERE ConditionalExpression];
FLUSH CACHE GROUP [Owner.]GroupName
WITH ID (ColumnValueList)
FLUSH CACHE GROUP文には、次のパラメータがあります。
FLUSH CACHE GROUP MarketBasket;
FLUSH CACHE GROUP MarketBasket;
WITH ID(10);